extends CardState

func enter() -> void:
	if not card_ui.is_node_ready():
		await  card_ui.ready
	if card_ui.tween and card_ui.tween.is_running():
		card_ui.tween.kill()
	card_ui.panel.set("theme_override_styles/panel", card_ui.BASE_STYLE_PANEL)
	#发射重新父化信号(即改变card_ui的父节点)，需要有一个CardUI类型的变量来链接到这个信号，并且设置一个回调函数被触发
	#思考:为什么是在状态为BASE时发射重新父化信号？
	#答：因为在CardDraggingState.gd文件中，按下鼠标右键会切换回BASE状态，而在BASE中发射重新父化信号就可以实现按下右键使得CardUI归位
	card_ui.reparent_requested.emit(card_ui)
	card_ui.pivot_offset = Vector2.ZERO

#这里不能用on_input(),因为这个是在整个屏幕范围内点击都会触发的回调函数，那么就会触发所有的卡牌的回调函数
#on_gui_input可以做到单独区分一张卡牌
func on_gui_input(event: InputEvent) -> void:
	if not card_ui.playable or card_ui.disabled:
		return
	if event.is_action_pressed("left_mouse"):
		card_ui.pivot_offset = card_ui.get_global_mouse_position() - card_ui.global_position
		transition_requested.emit(self, CardState.State.CLICKED)
		print("鼠标点击开始切换状态")

func on_mouse_entered() -> void:
	if not card_ui.playable or card_ui.disabled:
		return
	card_ui.panel.set("theme_override_styles/panel", card_ui.HOVER_STYLE_PANEL)

func on_mouse_exited() -> void:
	if not card_ui.playable or card_ui.disabled:
		return
	card_ui.panel.set("theme_override_styles/panel", card_ui.BASE_STYLE_PANEL)
	
	
